package map;

import java.util.HashMap;
import java.util.Map;

/**
 *map:查找表
 * Map 是一种常用的数据结构，它体现的样子是一个多行两列的表格
 * 其中左列称为key，右列称为value
 * Map总是根据key获取对应的value
 *
 * java.util.Map接口
 * */
public class MapDemo1 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        /*
        * V put(K k V v)
        * 向map中添加一组键值对
        * */
        Integer value = map.put("语文",100);
        //没有这个key时，返回值为null
        System.out.println("value="+value);
        map.put("语文",113);
        map.put("数学",121);
        map.put("英语",40);
        map.put("物理",83);
        map.put("化学",83);
        System.out.println(map);
        //使用重复的key存入时替换value，此时返回值为被替换的value
        value = map.put("英语",100);//value 为英语原来对应的97
        System.out.println("value="+value);
        System.out.println(map);
        /*
        * int size()
        * 返回当前的Map中的元素个数，每一组键值对为一个元素
        * */
        int size = map.size();
        System.out.println("size="+size);//5

        value =map.get("语文");//给定的key存在时，返回值为对应的value
        System.out.println("语文："+value);
        value =map.get("体育");//给定的key不存在时，返回值为null
        System.out.println("体育："+value);

        /*
        * 删除：
        * remove(Object key)
        * 根据给定的key删除对应的键值对，返回值为这个key对应的value
        * */
        value =map.remove("化学");
        System.out.println(map);
        System.out.println("value="+value);

        /*判断当前Map是否包含给定的key或value
        * */
        boolean ck = map.containsKey("化学");
        boolean cv = map.containsValue(83);
        System.out.println("是否包含key:"+ck);
        System.out.println("是否包含value:"+cv);



    }
}
